import java.util.Arrays;
import java.util.Scanner;
/*问题描述
　　给出一个字符串和多行文字，在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项：当选项打开时，表示同一个字母的大写和小写看作不同的字符；当选项关闭时，表示同一个字母的大写和小写看作相同的字符。
输入格式
　　输入的第一行包含一个字符串S，由大小写英文字母组成。
　　第二行包含一个数字，表示大小写敏感的选项，当数字为0时表示大小写不敏感，当数字为1时表示大小写敏感。
　　第三行包含一个整数n，表示给出的文字的行数。
　　接下来n行，每行包含一个字符串，字符串由大小写英文字母组成，不含空格和其他字符。
输出格式
　　输出多行，每行包含一个字符串，按出现的顺序依次给出那些包含了字符串S的行。
样例输入
Hello
1
5
HelloWorld
HiHiHelloHiHi
GrepIsAGreatTool
HELLO
HELLOisNOTHello
*/
public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();

        int num=sc.nextInt();
        sc.nextLine();
        int hangSum=sc.nextInt();
        sc.nextLine();
        String[]  str=new String[hangSum];
     for(int i=0;i<hangSum;i++){
         str[i]=sc.nextLine();
     }
        if(num==1){
            for (int i = 0; i < hangSum; i++) {

                if(str[i].contains(s)){
                    System.out.println(str[i]);
                }
            }
        }
        else if(num==0){
            for (int i = 0; i < hangSum ; i++) {
                String sac=str[i];
            sac=str[i].toLowerCase();
              s=s.toLowerCase();
              if(sac.contains(s)){
                  System.out.println(str[i]);
              }
            }

        }
    }
}
